#基类
     #线性脚本
     #1 双击打开浏览器
     # 2 get（网址）
     # 3 定位 按照业务用例执行
from selenium.webdriver.support.ui import WebDriverWait
class Base():
    # 1 初始化驱动
    def __init__(self,driver): #Edge Firefox Chrome
        self.driver = driver
    # 2 封装打开网址
    def open_url(self,url):
        self.driver.get(url)
    # 3 封装定位
    def find_element(self,loc):
        try:
            WebDriverWait(self.driver,20,0.5).until(lambda driver:driver.find_element(*loc).is_displayed())
            return self.driver.find_element(*loc)
        except Exception as e:
            print(e)
            # 时间戳命名的对应封装 -- 在这儿进行调用 可以作为保存图片的名称去调用
    # 4 封装点击事件
    def click(self,loc):
        self.find_element(loc).click()
    # 5 封装输入事件
    def send_keys(self,loc,text):
        self.find_element(loc).send_keys(text)
    # 6 封装清空事件
    def clear(self,loc):
        self.find_element(loc).clear()
    # 7 封装文本事件
    def text(self,loc):
        return self.find_element(loc).text
    # 8 frame 多窗口切换 滚动事件 鼠标键盘事件 浏览器 弹窗 下拉菜单
    def qie(self):
        self.driver.switch_to_window(self.driver.window_handles[-1])

